package field

import "gitee.com/yanwc/net/utils"

// field 15 U1
type (
	YktHelmetFault_2    U1    // 亚科特智能头盔锁故障信息
	YktHelmetFaultRaw_2 U1Raw // 亚科特智能头盔锁故障信息
)

const (
	Sb8_0_YktHelmetTXFault2      YktHelmetFault_2 = 0b0000_0000 // 通讯故障（有锁头，没有头盔信号）
	Sb8_1_YktHelmetUnknownFault2 YktHelmetFault_2 = 0b0000_0010 // 未知故障
	Sb8_2_YktHelmetFactoryFault2 YktHelmetFault_2 = 0b0000_0100 // 厂家故障（头盔和锁不是同一平台厂家）
	Sb8_3_YktHelmetOfflineFault2 YktHelmetFault_2 = 0b0000_1000 // 头盔离线故障（头盔离开整车超过80s）
)

func (y YktHelmetFault_2) Raw() (out YktHelmetFaultRaw_2) {
	copy(out[:], utils.NumberToBytesWithBigEndian(y))
	return
}

func (y YktHelmetFaultRaw_2) Type() YktHelmetFault_2 {
	return utils.BytesToNumber[YktHelmetFault_2](y[:])
}

func (y YktHelmetFaultRaw_2) Slice() []byte {
	return y[:]
}

func (y YktHelmetFault_2) Fault(v YktHelmetFault_2) bool {
	return y&v == y
}
